import request from '@/config/axios'
import type { PageResult } from '@/api/common' // 引入雨道默认分页类型

/** 参试设备管理表信息 */
export interface TestEquipment {
  id?: number; // ID
  eqName?: string; // 设备名称
  deptId?: number; // 所属部门
  model?: string; // 设备型号
  warehouseId?: number; // 存放库房id（改为可选）
  storageLocation: string; // 存放位置
  useStatus?: number; // 使用状态
  testStatus?: number; // 设备状态
  attachmentUrl?: string; // 附件（改为可选）
  remark?: string; // 备注（改为可选）
}

/** 我的已出库设备使用记录 VO（与后端 TestEquipmentMyUseRespVO 完全匹配） */
export interface TestEquipmentMyUse {
  id: number; // 编号
  eqName: string; // 设备名称
  model: string; // 设备型号
  storageLocation: string; // 存放位置
  updater: string; // 操作人
  updateTime: string; // 操作时间（后端返回字符串格式，如：2025-11-18 15:33:06）
}

// 参试设备管理表 API
export const TestEquipmentApi = {
  // 查询参试设备管理表分页
  getTestEquipmentPage: async (params: any) => {
    return await request.get({ url: `/testequipment/test-equipment/page`, params })
  },

  // 查询参试设备管理表详情
  getTestEquipment: async (id: number) => {
    return await request.get({ url: `/testequipment/test-equipment/get?id=` + id })
  },

  // 新增参试设备管理表
  createTestEquipment: async (data: TestEquipment) => {
    return await request.post({ url: `/testequipment/test-equipment/create`, data })
  },

  // 修改参试设备管理表
  updateTestEquipment: async (data: TestEquipment) => {
    return await request.put({ url: `/testequipment/test-equipment/update`, data })
  },

  // 删除参试设备管理表
  deleteTestEquipment: async (id: number) => {
    return await request.delete({ url: `/testequipment/test-equipment/delete?id=` + id })
  },

  /** 批量删除参试设备管理表 */
  deleteTestEquipmentList: async (ids: number[]) => {
    return await request.delete({ url: `/testequipment/test-equipment/delete-list?ids=${ids.join(',')}` })
  },

  // 导出参试设备管理表 Excel
  exportTestEquipment: async (params: any) => {
    return await request.download({ url: `/testequipment/test-equipment/export-excel`, params })
  },

  // ====================== 新增：我的已出库设备相关接口 ======================
  /**
   * 分页查询我的已出库设备使用记录
   * 接口路径：/testequipment/test-equipment/my-use-page（与后端 Controller 一致）
   */
  getMyEquipmentUsePage: async (params: {
    pageNo?: number; // 页码（默认1）
    pageSize?: number; // 每页条数（默认10）
    eqName?: string; // 设备名称（模糊查询）
    model?: string; // 设备型号（模糊查询）
  }) => {
    return await request.get<PageResult<TestEquipmentMyUse>>({ 
      url: `/testequipment/test-equipment/my-use-page`, 
      params 
    })
  },


  /**
   * 导出我的已出库设备使用记录（复用后端导出逻辑，参数与分页接口一致）
   */
  exportMyEquipmentUse: async (params: {
    eqName?: string;
    model?: string;
  }) => {
    return await request.download({ 
      url: `/testequipment/test-equipment/export-my-use`, 
      params 
    })
  },
   // ====================== 新增：入库状态更新接口 ======================
  /**
   * 更新设备使用状态（入库操作）
   * 接口路径：/testequipment/test-equipment/update-status（与后端一致）
   * @param data { id: 设备ID, useStatus: 目标状态（0=未出库） }
   */
  updateTestEquipmentStatus: async (data: { id: number; useStatus: number }) => {
    return await request.put({ 
      url: `/testequipment/test-equipment/update-status`, 
      data // 注意：后端接收 @RequestBody，所以用 data 传参（不是 params）
    })
  },
}